package com.menu.Service;

import com.menu.Pojo.MenuFather;
import com.menu.Utils.ResponseResult;
import org.springframework.web.multipart.MultipartFile;

public interface MenuFatherService {
    /**
     * 添加菜单
     * @param menuFatherName
     * @param menuFatherIntroduce
     * @param menuIds
     * @param userId
     * @param menuFatherSrc
     * @return
     */
    ResponseResult addMenuFather(String menuFatherName, String menuFatherIntroduce,
                                 Integer[] menuIds, Integer userId, MultipartFile menuFatherSrc);

    /**
     * 遍历所有的菜单-带分页
     * @param pageSize
     * @param pageNow
     * @return
     */
    ResponseResult findAllMenuFather(Integer pageSize,Integer pageNow);

    /**
     * 遍历某菜单下的所有食谱
     * @param menuFatherId
     * @return
     */
    ResponseResult findMenuByMenuFatherMenuIds(Integer menuFatherId);

    /**
     * 查找最新菜单
     * @param day
     * @return
     */
    ResponseResult findAllNearTimeMenuFather(Integer pageNow,Integer pageSize,Integer day);

    /**
     * 批量删除菜单
     * @return
     */
    ResponseResult batchDeleteMenuFather(Integer[] menuFatherId);

    /**
     * 单个删除菜单
     * @param menuFatherId
     * @return
     */
    ResponseResult deleteMenuFather(Integer menuFatherId,Integer userId);

    /**
     * 批量删除菜单
     * @param menuFatherId
     * @param userId
     * @return
     */
    ResponseResult batchDeleteMenuFather(Integer[] menuFatherId,Integer userId);

    /**
     * 根据id查找
     * @param menuFatherId
     * @return
     */
    ResponseResult findByMenuFatherId(Integer menuFatherId);

    /**
     * 模糊查询菜单
     * @param key
     * @param pageNow
     * @param pageSize
     * @return
     */
    ResponseResult findMenuFatherByNameLike(String key,Integer pageNow,Integer pageSize);

    /**
     * 遍历最热菜单
     * @param pageNow
     * @param pageSize
     * @return
     */
    ResponseResult findByMenuFatherByDoh(Integer pageNow,Integer pageSize);

    /**
     * 根据id查找菜单
     * @param userId
     * @param pageNow
     * @param pageSize
     * @return
     */
    ResponseResult findMenuFatherByUserId(Integer userId,Integer pageNow,Integer pageSize);

    /**
     * 审核菜单
     * @param menuFatherId
     * @return
     */
    ResponseResult verifyMenuFather(Integer menuFatherId,Integer state);

    /**
     * 后台查找菜单
     * @param key
     * @param pageNow
     * @param pageSize
     * @return
     */
    ResponseResult adminFindMenuFatherByNameLike(String key,Integer pageNow,Integer pageSize);

    /**
     * 在菜单中添加食谱
     * @param userId
     * @param menuId
     * @param menuFatherId
     * @return
     */
    ResponseResult addMenuAtMenuFather(Integer userId,Integer menuId,Integer menuFatherId);

}
